#!/usr/bin/env python
# -*- coding:utf-8 -*-
#1.列举常见的操作系统及公司线上服务器用的操作系统。
'''
答：常见的操作系统：
windoes ： win7  win10 ...
liux :centos   ubentu   redhat
mac
公司服务器上的操作系统一般是：liux 
'''
#2.简述位和字节的关系
'''
8位=1字节
'''
#3.is 和==的区别
'''
is比较的是变量之间的内存位置是否一致。
==比较的是变量之间的值是否相等。
'''
#4.pass的作用
'''
某一变量达到指定条件后，执行paas后，将变量忽略。 
参考答案：不做任何事，空的代码占位。
'''
#5.列举python2和python3的区别
'''
编码不同：py2为ascii码，py3为unicode
整除不同：py2整除后只显示整数部分
输入 输出不同  py2：raw_input  ,print '',  py3: input   print()
整数长度不同： py2：int+long   py3：int
'''
#6.变量的命名规范和建议
'''
1.字母下划线不可以
2.数字不能开头
3.不能是python关键字
建议：见名知意，多用_ 连接

'''
#7简述深浅拷贝
'''
浅拷贝只拷贝一层
深拷贝拷贝所有层中的可变类型

'''
#8解释型语言和编译型语言的区别
'''
解释型语言： 边写边执行：例如：python
编译型语言：将代码编译成一个文件，之后再执行编译后的文件：例如：java  c  
'''
#9列举你了解的数据类型及他具有的方法，每种最多写5个方法
'''
1.int：无
2.bool:无
3.str:upper/lower,isdemecial/split/strip/replace/
4.list:append,remove,pop,insert,del，extend
5.tuple:无
6.dict:key values,items
7.set:add,pop,intersection,union,difference
'''
#10列举你了解的转化为布尔值为False的常见值
'''
0,
' ' [] () {} set() None

'''
#11简述一下三个变量的区别：
#v1=(1)
#v2=(1,)
#v3=1
'''
v1和v3相等是数字，v2是元组
'''
#12写代码实现将字符串v='全栈21期'反转
'''

v='全栈21期'
v1=v[::-1]
print(v1)
'''
#13看代码写结果
'''
info = [
    {"k1":(1),"k2":{'k9:'oldboy','k10':'一天天'}},
    (11,22,33,44),
    {199,2,3,4,5},
    Ture,
    ['武佩奇','景女神',{'extra':('alex','eric',[18,20])}]
    ]
'''

#请根据索引获取上述结构中的1。
#info[0]['k1']

#请根据索引获取上述结构的'oldboy'.
#info[0]['k2']['k9']

#请根据索引获取上述结构的'44'.
#info[1][3]

##请根据索引获取上述结构的'天天'.
#info[0][1]['k10'][1:3]

#请循环打印上述结构中的集合'.
# v = info[2]
# for i in v:
#     print(i)

#请在上述结构中extra所在的字典中添加一个键值对并设置键为：Ture，值为真。
# info[4][2]['Ture']=['真']
# print(info)

#请在上述结构中[18,20]中添加一个整数元素：69.
#info[4]['extra'][2].append(69)

#14看代码写结果：
#result=1>6and8<9请写出result的值。
#False

# result=1or2 请写出result的值。
#1

#result=0 or Ture
#Ture

#result=1 and 8 or Ture and 4,请写出result值。
#8

#rsult="Alex"or ""and "oldboy",请写出result的结果

# result="Alex"or ""and "oldboy"
# Alex

#15.写代码实现将字符串v='k1|v1|,k2|v2,k3|v3...'转换成字典{k1:v1,'k2:v2’,k3:v3}

'''
v='k1|v1,k2|v2,k3|v3'
v1=v.split(",")
info={}
for i in v1:
    v2=i.split('|')
    info[v2[0]]=v2[1]
print(info)

'''
#16实现一个整数乘法计算器
'''
cotend=input('请输入内容:')
v=cotend.split('*')
reslut=1
for i in v:
    v=i.strip()
    v=int(v)
    reslut=reslut*v
print(reslut)
'''
#17看代码写结果

'''
v1=[1,2,3,4,5]
v2=[v1,v1,v1,v1,v1]
v2[1][0]=110
v2[2][0]=222
print(v1) #v1=[222,2,3,4,5]
print(v2) #v2=[[222,2,3,4,5],[222,2,3,4,5],[222,2,3,4,5],[222,2,3,4,5]]
'''
# 18请将info中索引值为偶数的值使用“*”拼接起来，并写入到文件a,log中。
'''
info=['你是','到底','是','不是','一个','魔鬼']
v=info[0::2]
v1='*'.join(v)
f=open('a,log',mode='w',encoding='utf-8')
f.write(v1)
f.close()
'''
'''
info=['你是','到底','是','不是','一个','魔鬼']
v=info[0::2]
v1='*'.join(v)
with open('a.log',mode='w',encoding='utf-8')as f:
    f.write(v1)
'''



# 19 写代码实现
# 需求：读取一个100G的文件，检测文件中是否有关键字key=['苍老师','小泽老师','alex'],如果有则替换成***，并写入到两一个文件中。
'''
key=['苍老师','小泽老师','alex']
with open('a.log',mode='r',encoding='utf-8')as f1,open('b.log',mode='w',encoding='utf-8') as f2:
    for line in f1:
        new_line=line.replace('苍老师',"***").replace("小泽老师",'***').replace('alex','***')
        f2.write(new_line)

'''
'''
keys=['苍老师','小泽老师','alex']
with open('a.log',mode='r',encoding='utf-8')as f1,open('c.log',mode='w',encoding='utf-8') as f2:
    for line in f1:
        for i in keys:
            if i in line:
                line=line.replace(i,'***')
        f2.write(line)
'''

# 车牌区域划分，请根据车牌信息，分析出各省的车牌持有量
cars=['鲁A32444','鲁B12333','京B8989M','黑C49678','黑C46555','沪B25041','黑C34567']
#根据cars得到入下结构
#info = {'鲁':2,'黑':3,'京':1,'沪':1}
'''
info = {}
v1=0
v2=0
v3=0
v4=0
for i in cars:
    if '鲁'in i:
        v1=v1+1
        info['鲁']=v1
    if '京'in i:
        v2=v2+1
        info['京'] = v2
    if '黑'in i:
        v3=v3+1
        info['黑'] = v3
    if '沪'in i:
        v4=v4+1
        info['沪'] = v4
print(info)
'''
'''
info={}
for i in cars:
    start=i[0]
    if start in info:
        info[start]=info[start]+1
    else:
        info[start]=1
print(info)
'''
# 写代码实现
# 需求：读取文件内容，将文件构成如下结构：
#data文件内容如下：
# id,name,age,phone,job
# 1,alex,22,13651054608,IT
# 2,wusir,23,133556852,teacher
# 3,taiba,24,16652254,IT

#利用文件操作将其构成如下数据类型。
#info=[{'id'='1','name'='alex','age'='22','phone'='13651054608','job'='IT'},{....},{....}]
'''
info = []
a={}
with open('data.txt',mode='r',encoding='utf-8') as f1:
    is_first=True
    first_line=None
    for line in f1:
        line=line.strip()
        if is_first:
            first_line=line.split(',')
            is_first=False
            continue
        other_line=line.split(',')
        element={}
        for i in range (0,len(other_line)):
            element[first_line[i]]=other_line[i]
        info.append(element)
    print(info)
    
    
'''
#22请使用for循环打印9*9乘法表
'''
info = []
for i in range(1,10):
    for j in range(1,i+1):
        temp="%s*%s"%(i,j)
        print(temp,end=' ')
    print(' ')

'''

















